Traffic shaping is a technique that regulates network data traffic by slowing down a traffic stream determined as less important or less desired than prioritized traffic streams. There are two common mechanisms to slow down a stream: first, dropping or discarding some packets and second, delaying packets. The packet dropping mechanism is used widely and considered as the only viable solution in many cases. For example, traffic shaping, if performed by a separate device to which computers are connected, can be performed by selectively dropping packets.
Alternatively, the packet delaying mechanism can dispense with packet dropping or reduce the number of dropped packets. For example, when a packet is delayed, a feedback mechanism can exert “back pressure,” i.e., send a feedback, to a sending module (e.g., device or software component) so as cause a sending module to reduce the rate at which it sends packets. Without such “back pressure,” a traffic shaping module will need to keep receiving packets at a faster rate, and need to buffer them until the time at which it can send them at the correct rate. The lack of such “back pressure” will not only prevent an application from being immediately aware of traffic congestion but also degrade the overall throughput and performance of a packet transmission system.